package com.sumainfor.common.utlis;

import com.sumainfor.common.util.ContextUtils;

import java.util.Map;

/**
 * @author PuaChen
 */
public class ParamsCommon {


    private static String getActionMethod() {
        String methodName = Thread.currentThread().getStackTrace()[0].getMethodName();
        return methodName + "-";
    }

    /**
     * 通用 新增
     *
     * @author jason
     */
    public static Map<String, Object> commonInsertParms(Map<String, Object> params) {
        if (params == null) {
            return params;
        }
        params.put("instm", ConvertDateTime.getCurrentTime());//创建时间 Insert时间
        if (params.get("term") != null) {
            params.put("insterm", params.get("term"));//创建端 Insert端： 1 用户端 2 PC端 3 待定
            params.remove("term");
        }
        if (params.get("by") == null) {
            params.put("insby", "auto");//创建人 Insert操作者  默认给auto
        } else {
            params.put("insby", params.get("by"));//创建人 Insert操作者
            params.remove("by");
        }
        if (params.get("fnc") != null) {
            params.put("insfnc", params.get("fnc"));//更新人 Update操作者  默认给auto
            params.remove("fnc");
        }
        return params;
    }

    public static Map<String, Object> commonInsertParms(Map<String, Object> params, Class cls) {
        if (params == null) {
            return params;
        }
        params.put("instm", ConvertDateTime.getCurrentTime());//创建时间 Insert时间
        if (params.get("term") == null) {
            params.put("insterm", "2");//创建端 Insert端： 1 用户端 2 PC端 3 待定
            params.remove("term");
        }
        if (params.get("by") == null) {
            params.put("insby", ContextUtils.getUserId());//创建人 Insert操作者  默认给auto
        } else {
            params.put("insby", ContextUtils.getUserId());//创建人 Insert操作者
            params.remove("by");
        }
        if (params.get("fnc") == null) {
            params.put("insfnc", getActionMethod() + cls.getSimpleName());//更新人 Update操作者  默认给auto
            params.remove("fnc");
        }
        return params;
    }

    /**
     * 通用 修改
     *
     * @author jason
     */
    public static Map<String, Object> commonUpdateParms(Map<String, Object> params) {
        if (params == null) {
            return params;
        }
        params.put("updtm", ConvertDateTime.getCurrentTime());//更新时间 Update时间
        if (params.get("term") != null) {
            params.put("updterm", params.get("term"));//更新端 Update端： 1 租客端 2市场部 3 工程部   4运营部   5财务部  6总经办 7发展部
            params.remove("term");
        }
        if (params.get("by") == null) {
            params.put("updby", "auto");//更新人 Update操作者  默认给auto
        } else {
            params.put("updby", params.get("by"));//更新人 Update操作者
            params.remove("by");
        }
        if (params.get("fnc") != null) {
            params.put("updfnc", params.get("fnc"));//更新人 Update操作者  默认给auto
            params.remove("fnc");
        }
        return params;
    }

    /**
     * 通用 修改
     *
     * @author jason
     */
    public static Map<String, Object> commonUpdateParms(Map<String, Object> params, Class cls) {
        if (params == null) {
            return params;
        }
        params.put("updtm", ConvertDateTime.getCurrentTime());//更新时间 Update时间
        if (params.get("term") != null) {
            params.put("updterm", params.get("term"));//更新端 Update端： 1 租客端 2市场部 3 工程部   4运营部   5财务部  6总经办 7发展部
            params.remove("term");
        }
        if (params.get("by") == null) {
            params.put("updby", ContextUtils.getUserId());//更新人 Update操作者  默认给auto
        } else {
            params.put("updby", params.get("by"));//更新人 Update操作者
            params.remove("by");
        }
        params.put("updfnc", getActionMethod() + cls.getSimpleName());//更新人 Update操作者  默认给auto
        params.remove("fnc");
        return params;
    }
}
